<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>ECharts</title>
    <!-- 引入 echarts.js -->
    <script src="../../../resources/js/echarts/echarts.min.js"></script>
</head>
<body>
<!-- 为ECharts准备一个具备大小（宽高）的Dom -->
<div id="main" style="width: 800px;height:600px;"></div>
<script type="text/javascript">
    // 基于准备好的dom，初始化echarts实例
    var myChart = echarts.init(document.getElementById('main'));

    const result = {
        //模型拟合评估指标
        "indicator": [{
            "indicator_name": "平均绝对误差(MAE)",
            "indicator_value": "0.08101189881563187"
        }, {
            "indicator_name": "平均平方吴差(MSE)",
            "indicator_value": "0.012648699805140495"
        }, {
            "indicator_name": "平均绝对百分比误差(MAPE)",
            "indicator_value": "0.10916599631309509"
        }, {
            "indicator_name": "相对平方误差(RSE)",
            "indicator_value": "0.1145000010728836"
        }, {
            "indicator_name": "相对绝对误差(RAE)",
            "indicator_value": "0.1704999953508377"
        }],
        //工程转资率真实值VS预测值
        "actualvsfitted": [{
            "project_id": "C1093416A0GR",
            "fitted_name": "转资率",
            "fitted_value": "0.7853289842605591",
            "actual_value": "0.862529993057251",
            "mape": "0.08950509876012802",
            "correctRate": "0.910494901239872",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.07720080018043518"
        }, {
            "project_id": "C1093417A00V",
            "fitted_name": "转资率",
            "fitted_value": "0.6753730177879333",
            "actual_value": "0.6881459951400757",
            "mape": "0.018560800701379776",
            "correctRate": "0.9814391992986202",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.012772499583661556"
        }, {
            "project_id": "C1093417A05S",
            "fitted_name": "转资率",
            "fitted_value": "0.7237169742584229",
            "actual_value": "0.7263259887695312",
            "mape": "0.003592390101402998",
            "correctRate": "0.9964076136238873",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.0026092398911714554"
        }, {
            "project_id": "C1093416A0LP",
            "fitted_name": "转资率",
            "fitted_value": "0.6970229744911194",
            "actual_value": "0.7569590210914612",
            "mape": "0.07918059825897217",
            "correctRate": "0.9208193719387054",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.05993650108575821"
        }, {
            "project_id": "C1093416A0P4",
            "fitted_name": "转资率",
            "fitted_value": "0.7441400289535522",
            "actual_value": "0.8284509778022766",
            "mape": "0.10176999866962433",
            "correctRate": "0.8982304260134697",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.0843110978603363"
        }, {
            "project_id": "C1093416A0PU",
            "fitted_name": "转资率",
            "fitted_value": "0.8445169925689697",
            "actual_value": "0.8471180200576782",
            "mape": "0.0030712399166077375",
            "correctRate": "0.9969287647400051",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.0026016999036073685"
        }, {
            "project_id": "C1093416A0TB",
            "fitted_name": "转资率",
            "fitted_value": "0.7737159729003906",
            "actual_value": "0.7846720218658447",
            "mape": "0.013962400145828724",
            "correctRate": "0.986037565395236",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.010955899953842163"
        }, {
            "project_id": "C1093416A0A3",
            "fitted_name": "转资率",
            "fitted_value": "0.7680439949035645",
            "actual_value": "0.7590360045433044",
            "mape": "0.011868099682033062",
            "correctRate": "0.9881319403648376",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "0.009008280001580715"
        }, {
            "project_id": "C1093417A007",
            "fitted_name": "转资率",
            "fitted_value": "0.8479539752006531",
            "actual_value": "0.65556800365448",
            "mape": "0.2934649884700775",
            "correctRate": "0.7065349519252777",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "0.19238600134849548"
        }, {
            "project_id": "C1093416A0U0",
            "fitted_name": "转资率",
            "fitted_value": "0.8790789842605591",
            "actual_value": "0.7881860136985779",
            "mape": "0.11531800031661987",
            "correctRate": "0.8846815377473831",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "0.09089239686727524"
        }, {
            "project_id": "C1093417A00T",
            "fitted_name": "转资率",
            "fitted_value": "0.8443269729614258",
            "actual_value": "0.8639410138130188",
            "mape": "0.022702999413013458",
            "correctRate": "0.9772969987243414",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.019613999873399734"
        }, {
            "project_id": "C1093416A0SS",
            "fitted_name": "转资率",
            "fitted_value": "0.6755639910697937",
            "actual_value": "0.6296219825744629",
            "mape": "0.07296759635210037",
            "correctRate": "0.9270323514938354",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "0.04594210162758827"
        }, {
            "project_id": "C1093416A0RK",
            "fitted_name": "转资率",
            "fitted_value": "0.5426380038261414",
            "actual_value": "0.6102200150489807",
            "mape": "0.1107499971985817",
            "correctRate": "0.8892500847578049",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.06758180260658264"
        }, {
            "project_id": "C1093417A0AV",
            "fitted_name": "转资率",
            "fitted_value": "0.4515799880027771",
            "actual_value": "0.7240300178527832",
            "mape": "0.3762960135936737",
            "correctRate": "0.6237035989761353",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.2724500000476837"
        }, {
            "project_id": "C1093417A04D",
            "fitted_name": "转资率",
            "fitted_value": "0.8682270050048828",
            "actual_value": "0.8129349946975708",
            "mape": "0.0680147036910057",
            "correctRate": "0.9319853186607361",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "0.05529149994254112"
        }, {
            "project_id": "C1093417A00F",
            "fitted_name": "转资率",
            "fitted_value": "0.943759024143219",
            "actual_value": "0.7929779887199402",
            "mape": "0.19014599919319153",
            "correctRate": "0.8098542839288712",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "0.15078100562095642"
        }, {
            "project_id": "C1093416A0R7",
            "fitted_name": "转资率",
            "fitted_value": "0.7958329916000366",
            "actual_value": "0.8188289999961853",
            "mape": "0.028084799647331238",
            "correctRate": "0.9719151742756367",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.022996699437499046"
        }, {
            "project_id": "C1093417A052",
            "fitted_name": "转资率",
            "fitted_value": "0.9502859711647034",
            "actual_value": "0.9722660183906555",
            "mape": "0.02260719984769821",
            "correctRate": "0.9773927759379148",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.021980199962854385"
        }, {
            "project_id": "C1093417A04Q",
            "fitted_name": "转资率",
            "fitted_value": "0.8013280034065247",
            "actual_value": "0.9310529828071594",
            "mape": "0.13933099806308746",
            "correctRate": "0.8606685549020767",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.12972499430179596"
        }, {
            "project_id": "C1093417A00P",
            "fitted_name": "转资率",
            "fitted_value": "0.8668079972267151",
            "actual_value": "0.7895799875259399",
            "mape": "0.09780950099229813",
            "correctRate": "0.9021905213594437",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "0.07722839713096619"
        }, {
            "project_id": "C1093417A012",
            "fitted_name": "转资率",
            "fitted_value": "0.7392269968986511",
            "actual_value": "0.5809980034828186",
            "mape": "0.27233999967575073",
            "correctRate": "0.7276604175567627",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "0.15822899341583252"
        }, {
            "project_id": "C1093417A08J",
            "fitted_name": "转资率",
            "fitted_value": "0.7699919939041138",
            "actual_value": "0.8282949924468994",
            "mape": "0.0703883022069931",
            "correctRate": "0.9296116977930069",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.058302201330661774"
        }, {
            "project_id": "C1093417A045",
            "fitted_name": "转资率",
            "fitted_value": "0.8161810040473938",
            "actual_value": "0.7767720222473145",
            "mape": "0.05073399841785431",
            "correctRate": "0.9492660090327263",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "0.03940879926085472"
        }, {
            "project_id": "C1093416A0TN",
            "fitted_name": "转资率",
            "fitted_value": "0.814365029335022",
            "actual_value": "0.8158569931983948",
            "mape": "0.0018286199774593115",
            "correctRate": "0.9981713789748028",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.0014918900560587645"
        }, {
            "project_id": "C1093416A0PV",
            "fitted_name": "转资率",
            "fitted_value": "0.5420699715614319",
            "actual_value": "0.7873520255088806",
            "mape": "0.3115279972553253",
            "correctRate": "0.6884720921516418",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.24528199434280396"
        }, {
            "project_id": "C1093416A0NP",
            "fitted_name": "转资率",
            "fitted_value": "0.8103709816932678",
            "actual_value": "0.8068000078201294",
            "mape": "0.00442609004676342",
            "correctRate": "0.9955739094875753",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "0.0035709699150174856"
        }, {
            "project_id": "C1093417A002",
            "fitted_name": "转资率",
            "fitted_value": "0.7061949968338013",
            "actual_value": "0.7159169912338257",
            "mape": "0.0135799003764987",
            "correctRate": "0.9864200819283724",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.0097220903262496"
        }, {
            "project_id": "C1093417A03B",
            "fitted_name": "转资率",
            "fitted_value": "0.8671759963035583",
            "actual_value": "0.8741139769554138",
            "mape": "0.007937019690871239",
            "correctRate": "0.9920629793778062",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.006937860045582056"
        }, {
            "project_id": "C1093417A042",
            "fitted_name": "转资率",
            "fitted_value": "0.9019709825515747",
            "actual_value": "0.6864449977874756",
            "mape": "0.313975989818573",
            "correctRate": "0.6860244870185852",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "0.2155269980430603"
        }, {
            "project_id": "C1093417A06S",
            "fitted_name": "转资率",
            "fitted_value": "0.694989025592804",
            "actual_value": "0.7645019888877869",
            "mape": "0.09092549979686737",
            "correctRate": "0.9090744629502296",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.06951270252466202"
        }, {
            "project_id": "C1093417A0J8",
            "fitted_name": "转资率",
            "fitted_value": "0.6714649796485901",
            "actual_value": "0.7320460081100464",
            "mape": "0.08275560289621353",
            "correctRate": "0.9172443747520447",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.06058090180158615"
        }, {
            "project_id": "C1093417A082",
            "fitted_name": "转资率",
            "fitted_value": "0.6310989856719971",
            "actual_value": "0.5879340171813965",
            "mape": "0.07341670244932175",
            "correctRate": "0.9265833348035812",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "0.0431642010807991"
        }, {
            "project_id": "C1093416A0T5",
            "fitted_name": "转资率",
            "fitted_value": "0.757224977016449",
            "actual_value": "0.8019090294837952",
            "mape": "0.055721499025821686",
            "correctRate": "0.9442785307765007",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.04468350112438202"
        }, {
            "project_id": "C1093417A0AX",
            "fitted_name": "转资率",
            "fitted_value": "0.7245609760284424",
            "actual_value": "0.5603749752044678",
            "mape": "0.2929919958114624",
            "correctRate": "0.7070080935955048",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "0.16418500244617462"
        }, {
            "project_id": "C1093417A03Y",
            "fitted_name": "转资率",
            "fitted_value": "0.9102389812469482",
            "actual_value": "0.909529983997345",
            "mape": "7.789420196786523E-4",
            "correctRate": "0.999221058038529",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "7.084709941409528E-4"
        }, {
            "project_id": "C1093417A00Z",
            "fitted_name": "转资率",
            "fitted_value": "0.7455250024795532",
            "actual_value": "0.7433099746704102",
            "mape": "0.002980950055643916",
            "correctRate": "0.9970190520398319",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "0.002215770073235035"
        }, {
            "project_id": "C1093417A04G",
            "fitted_name": "转资率",
            "fitted_value": "0.7153580188751221",
            "actual_value": "0.8402600288391113",
            "mape": "0.1486469954252243",
            "correctRate": "0.8513526618480682",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.12490200251340866"
        }, {
            "project_id": "C1093417A043",
            "fitted_name": "转资率",
            "fitted_value": "0.550819993019104",
            "actual_value": "0.8216590285301208",
            "mape": "0.3296239972114563",
            "correctRate": "0.6703756749629974",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.27083900570869446"
        }, {
            "project_id": "C1093416A0SU",
            "fitted_name": "转资率",
            "fitted_value": "0.7717700004577637",
            "actual_value": "0.725583016872406",
            "mape": "0.06365569680929184",
            "correctRate": "0.9363443031907082",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "0.04618750140070915"
        }, {
            "project_id": "C1093417A01P",
            "fitted_name": "转资率",
            "fitted_value": "0.6737679839134216",
            "actual_value": "0.612076997756958",
            "mape": "0.10079000145196915",
            "correctRate": "0.8992096856236458",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "0.06169139966368675"
        }, {
            "project_id": "C1093416A0TA",
            "fitted_name": "转资率",
            "fitted_value": "0.7272400259971619",
            "actual_value": "0.8737969994544983",
            "mape": "0.16772399842739105",
            "correctRate": "0.8322759568691254",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.1465570032596588"
        }, {
            "project_id": "C1093416A0R6",
            "fitted_name": "转资率",
            "fitted_value": "0.6524069905281067",
            "actual_value": "0.6930400133132935",
            "mape": "0.05863010138273239",
            "correctRate": "0.9413699209690094",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.04063300043344498"
        }, {
            "project_id": "C1093417A00A",
            "fitted_name": "转资率",
            "fitted_value": "0.5792700052261353",
            "actual_value": "0.7490500211715698",
            "mape": "0.22666099667549133",
            "correctRate": "0.7733393758535385",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.16978000104427338"
        }, {
            "project_id": "C1093417A027",
            "fitted_name": "转资率",
            "fitted_value": "0.9016410112380981",
            "actual_value": "0.8753160238265991",
            "mape": "0.0300757996737957",
            "correctRate": "0.9699241537600756",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "0.026325900107622147"
        }, {
            "project_id": "C1093417A0AS",
            "fitted_name": "转资率",
            "fitted_value": "0.5844709873199463",
            "actual_value": "0.8133010268211365",
            "mape": "0.281360000371933",
            "correctRate": "0.7186398506164551",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
            "residuals": "-0.2288309931755066"
        }],
        "paramId": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a",
        //工程投资转资分布图
        "distribution": [{
            "project_id": "3",
            "actual_value": "[0.5604 - 0.6016)",
            "percent": "0.06666666666666667"
        }, {
            "project_id": "3",
            "actual_value": "[0.6016 - 0.6428)",
            "percent": "0.06666666666666667"
        }, {
            "project_id": "1",
            "actual_value": "[0.6428 - 0.6839)",
            "percent": "0.02222222222222222"
        }, {
            "project_id": "5",
            "actual_value": "[0.6839 - 0.7251)",
            "percent": "0.1111111111111111"
        }, {
            "project_id": "8",
            "actual_value": "[0.7251 - 0.7663)",
            "percent": "0.1777777777777778"
        }, {
            "project_id": "8",
            "actual_value": "[0.7663 - 0.8075)",
            "percent": "0.1777777777777778"
        }, {
            "project_id": "9",
            "actual_value": "[0.8075 - 0.8487)",
            "percent": "0.2"
        }, {
            "project_id": "5",
            "actual_value": "[0.8487 - 0.8899)",
            "percent": "0.1111111111111111"
        }, {
            "project_id": "2",
            "actual_value": "[0.8899 - 0.9311)",
            "percent": "0.04444444444444444"
        }, {
            "project_id": "1",
            "actual_value": "[0.9311 - 0.9723]",
            "percent": "0.02222222222222222"
        }],
        //特征变量重要性分析
        "feature_importance": [{
            "feature_weight": "0.9933106899261475",
            "feature_name": "变更后预算金额",
            "predicted_name": "转资率",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a"
        }, {
            "feature_weight": "0.9903746843338013",
            "feature_name": "监理费用",
            "predicted_name": "转资率",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a"
        }, {
            "feature_weight": "0.984813928604126",
            "feature_name": "甲供材料费",
            "predicted_name": "转资率",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a"
        }, {
            "feature_weight": "0.9840520620346069",
            "feature_name": "设计费用",
            "predicted_name": "转资率",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a"
        }, {
            "feature_weight": "0.9330044388771057",
            "feature_name": "测绘费用",
            "predicted_name": "转资率",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a"
        }, {
            "feature_weight": "0.7640959024429321",
            "feature_name": "分项工程个数",
            "predicted_name": "转资率",
            "param_id": "4d2a272f-fadf-4f48-bcbf-2ccf134e0e8a"
        }]
    };

//    系列列表
    var series = [];

    const importanceData = {};
    const importanceIndex = new Set();
    for (const item of result.feature_importance) {
        if (importanceData[item.predicted_name] == null) {
            importanceData[item.predicted_name] = [];
        }
        importanceData[item.predicted_name].push(item.feature_weight);
        importanceIndex.add(item.feature_name);
    }
    //柱状图
    for (const key in importanceData) {
        series.push({
            type: 'bar',//柱状图
            xAxisIndex: 0,//第一张图用的直角坐标系
            yAxisIndex: 0,
            data: importanceData[key],
            itemStyle: {
                color: '#3399FF'
            },
            animationDelay: function(idx) {
                return idx * 10;
            },
        });
    }

    const actualvsfittedData = [];
    const correctRateData = [];
    const correctRateIndex = [];
    for (const item of result.actualvsfitted) {
        actualvsfittedData.push([item.actual_value, item.fitted_value]);
        correctRateIndex.push(item.project_id);
        correctRateData.push(item.correctRate);
    }
    //散点图
    series.push({
        name: '工程转资率',
        type: 'scatter',//散点图
        xAxisIndex: 1,//第二张图也用的直角坐标系
        yAxisIndex: 1,
        data: actualvsfittedData,
        itemStyle: {
            color: '#FF8A00'
        },
        markLine: {
            animation: false,
            lineStyle: {
                normal: {
                    type: 'solid'
                }
            },
            data: [
                [{
                    x: '7%',
                    y: '91%',
                    symbol: 'none'
                }, {
                    x: '45%',
                    y: '58%',
                    symbol: 'none'
                }]
            ]
        }
    });

//    折线图
    series.push({
        name: '工程个数',
        type: 'line',
        xAxisIndex: 2,
        yAxisIndex: 2,
        data: correctRateData,
        smooth: true,
        itemStyle: {
            color: '#3399FF'
        },
        showSymbol: false,
        animationDelay: function(idx) {
            return idx * 10;
        }
    });


    var indicator = [{
        indicator_name: '指标名称',
        indicator_value: '指标值'
    }];
    if (result.indicator) {
        for (const iterator of result.indicator) {
            indicator.push({
                indicator_name: iterator.indicator_name,
                indicator_value: parseFloat(iterator['indicator_value']).toFixed(3)
            });
        }
    }

    //表格 自定义
    series.push({
        name: '模型拟合评估指标',
        type: 'custom',//自定义
        data: indicator,
        coordinateSystem: 'none',
        renderItem: function renderItem(params, api) {
            const style = api.style({
                stroke: 'black',
                fill: params.dataIndex === 0 ? '#dcdcdc' : null
            });
            const apiWidth = api.getWidth();
            const apiHeight = api.getHeight();
            let font;
            let height;
            let y0;
            if (params.dataIndex === 0) {
                font = 'bolder 1.5em "Microsoft YaHei", sans-serif';
                height = apiHeight * 0.07;
                y0 = apiHeight * 0.07 + 1;
            } else {
                font = '1.1em "Microsoft YaHei", sans-serif';
                height = apiHeight * 0.052;
                y0 = apiHeight * 0.088 + params.dataIndex * height + 1;
            }
            const x0 = apiWidth * 0.54;
            const value = indicator[params.dataIndex];
            return {
                type: 'group',
                children: [{
                    type: 'rect',
                    shape: {
                        x: x0,
                        y: y0,
                        width: 0.29 * apiWidth,
                        height: height,
                    },
                    style: style
                }, {
                    type: 'text',
                    style: {
                        text: value['indicator_name'],
                        font: font,
                        x: x0 + 3,
                        y: y0 + height / 3,
                    }
                }, {
                    type: 'rect',
                    shape: {
                        x: x0 + 0.29 * apiWidth,
                        y: y0,
                        width: 0.1 * apiWidth,
                        height: height
                    },
                    style: style
                }, {
                    type: 'text',
                    style: {
                        text: value.indicator_value,
                        font: font,
                        x: x0 + 0.29 * apiWidth + 3,
                        y: y0 + height / 3
                    }
                }]
            };
        }
    });

    option = {
        title: [{
            text: '特征变量重要性分析',
            x: '23%',
            textAlign: 'center'
        }, {
            text: '模型拟合评估指标',
            x: '75%',
            textAlign: 'center'
        }, {
            text: '工程转资率真实值vs预测值',
            x: '23%',
            y: '50%',
            textAlign: 'center'
        }, {
            text: '工程投资转资分布图',
            x: '75%',
            y: '50%',
            textAlign: 'center'
        }],
        toolbox: {
            show: true,
            orient: 'horizontal',
            showTitle: true,
            feature: {
                magicType: {
                    type: ['line', 'bar'],
                    seriesIndex: {
                        line: [2],
                        bar: [2]
                    }
                },
                saveAsImage: {
                    type: 'png',
                    show: true,
                    title: '保存为图片',
                }
            }
        },
        grid: [{
            x: '7%',
            y: '7%',
            width: '38%',
            height: '33%'
        }, {
            x: '7%',
            y2: '9%',
            width: '38%',
            height: '33%'
        }, {
            x2: '7%',
            y2: '9%',
            width: '38%',
            height: '33%'
        }],
        tooltip: {
            formatter: '{a}: {c}'
        },
        xAxis: [{
            gridIndex: 0,
            min: 0,
            boundaryGap: ['0', '5%']
        }, {
            gridIndex: 1,
            type: 'value',
            scale: true,
            name: '实际值',
            nameLocation: 'middle',
            nameGap: 27,
        }, {
            gridIndex: 2,
            type: 'category',
            data: correctRateIndex,
            axisPointer: {
                type: 'shadow'
            },
            axisLabel: {
                rotate: 30
            }
        }],
        yAxis: [{
            gridIndex: 0,
            type: 'category',
            data: Array.from(importanceIndex),
            axisPointer: {
                type: 'shadow'
            },
            axisLabel: {
                rotate: 40
            }
        }, {
            gridIndex: 1,
            type: 'value',
            scale: true,
            name: '预测值',
            nameLocation: 'middle',
            nameGap: 30,
            nameRotate: 90
        }, {
            gridIndex: 2,
            type: 'value',
            scale: true,
            axisLabel: {
                formatter: function (value,index) {
                    return value*100 + '%';
                }
    },
    splitLine: {
        show: false
    }
    }],
    series: series
    };

    // 使用刚指定的配置项和数据显示图表。
    myChart.setOption(option);
</script>
</body>
</html>